package org.wu.framework.ssh.server.platform.infrastructure.entity;

import lombok.Data;
import lombok.experimental.Accessors;
import org.wu.framework.lazy.orm.core.stereotype.LazyTableIndex;
import org.wu.framework.core.stereotype.LayerField;
import org.wu.framework.core.stereotype.LayerField.LayerFieldType;
import org.wu.framework.lazy.orm.core.stereotype.LazyTable;
import org.wu.framework.lazy.orm.core.stereotype.LazyTableField;
import org.wu.framework.lazy.orm.core.stereotype.*;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import java.time.LocalDateTime;
import java.lang.String;
import java.lang.Integer;
import java.lang.Boolean;
/**
 * describe ssh服务器信息 
 *
 * @author Jia wei Wu
 * @date 2025/09/13 10:07 晚上
 * @see org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureEntity 
 **/
@Data
@Accessors(chain = true)
@LazyTable(tableName = "ssh_server_config",comment = "ssh服务器信息")
@Schema(title = "ssh_server_config",description = "ssh服务器信息")
public class SshServerConfigDO {


    /**
     * 
     * 创建时间
     */
    @Schema(description ="创建时间",name ="createTime",example = "")
    @LazyTableField(name="create_time",comment="创建时间",defaultValue="CURRENT_TIMESTAMP",upsertStrategy = LazyFieldStrategy.NEVER,columnType="datetime",extra="")
    private LocalDateTime createTime;


    /**
     * 
     * 主机
     */
    @Schema(description ="主机",name ="host",example = "")
    @LazyTableFieldUnique(name="host",comment="主机",notNull=true,columnType="varchar(255)")
    private String host;

    /**
     * 
     * 
     */
    @Schema(description ="",name ="id",example = "")
    @LazyTableFieldId(name="id",comment="")
    private Integer id;

    /**
     * 
     * 是否删除
     */
    @Schema(description ="是否删除",name ="isDeleted",example = "")
    @LazyTableField(name="is_deleted",comment="是否删除",defaultValue="'0'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="tinyint(1)")
    private Boolean isDeleted;

    /**
     * 
     * 服务器名称
     */
    @Schema(description ="服务器名称",name ="name",example = "")
    @LazyTableField(name="name",comment="服务器名称",columnType="varchar(255)")
    private String name;

    /**
     * 
     * 密码
     */
    @Schema(description ="密码",name ="password",example = "")
    @LazyTableField(name="password",comment="密码",columnType="varchar(255)")
    private String password;

    /**
     * 
     * 端口
     */
    @Schema(description ="端口",name ="port",example = "")
    @LazyTableFieldUnique(name="port",comment="端口",notNull=true,defaultValue="'22'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="int")
    private Integer port;

    /**
     * 
     * 更新时间
     */
    @Schema(description ="更新时间",name ="updateTime",example = "")
    @LazyTableField(name="update_time",comment="更新时间",defaultValue="CURRENT_TIMESTAMP",upsertStrategy = LazyFieldStrategy.NEVER,columnType="datetime",extra=" on update CURRENT_TIMESTAMP")
    private LocalDateTime updateTime;

    /**
     * 
     * 用户名
     */
    @Schema(description ="用户名",name ="username",example = "")
    @LazyTableField(name="username",comment="用户名",columnType="varchar(255)")
    private String username;

}